Critical-path circuit for performance monitoring

ABSTRACT

An integrated circuit having a monitor circuit for monitoring timing in a critical path having a target timing margin is disclosed. The monitor circuit has two shift registers, one of which includes a delay element that applies a delay value to a received signal. The inputs to the two shift registers form a signal input node capable of receiving an input signal. The monitor circuit also has a logic gate having an output and at least two inputs, each input connected to a corresponding one of the outputs of the two shift registers. The output of the logic gate indicates whether the target timing margin is satisfied or not satisfied.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation of co-pending application Ser. No. 12/738,931filed Apr. 20, 2010, as attorney docket no. Chlipala 17-7-16-16, whichis the National Stage of International Application No. PCT/US2009/032106filed Jan. 27, 2009, the teachings of which applications areincorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to digital integrated circuits, and, inparticular, to timing-error detection in digital circuits.

2. Description of the Related Art

In recent years, circuit designers have investigated various approachesfor predicting failures in integrated circuits (ICs). One such approachis known as critical-path performance monitoring. In conventionalcritical-path performance monitoring, a circuit designer identifies oneor more signal paths that are deemed to be critical for the properoperation of an integrated circuit (known as “critical paths” or“critical data paths”), usually a path having a maximum delay. For agiven circuit element within the critical path, the designer furtheridentifies a target timing margin, i.e., a period of time before which adata signal transition should arrive at the circuit element, relative toa clock signal transition. A timing-monitor circuit (or “aging sensor”)is provided on the integrated circuit to monitor the timing of thesignals in each critical path. As the integrated circuit ages over time,the actual timing of the signals in each critical path tends to degrade.When a timing-monitor circuit determines that the actual timing marginof a signal in a critical path is less than the target timing margin,one may anticipate that a circuit failure is likely to occur, and theintegrated circuit may take steps to self-correct, e.g., by adjustingthe clock frequency, the voltage supply, or even the body bias voltageof the transistors in the integrated circuit. See, e.g., Neil Savage,“Intel and ARM are Exploring Self-Correction Schemes to Boost ProcessorPerformance and Cut Power,” Spectrum Online, February 2008,http://www.spectrum.ieee.org/feb08/5975, and Mridul Agarwal et al.,“Circuit Failure Prediction and its application to Transistor Aging,”25th IEEE VLSI Test Symposium, May 6-10, 2007, pp. 277-286, each ofwhich is hereby incorporated by reference in its entirety.

FIG. 1 is a block diagram of an integrated circuit 100 that includes acritical path 102 and a timing-monitor circuit 110 described by Agarwalet al. Critical path 102 includes circuit elements 104, 106.Timing-monitor circuit 110 includes (i) a D-type flip-flop 118 insertedafter circuit element 104 and before circuit element 106 in criticalpath 102, (ii) a delay element 114 having delay value T_(G) equal to thetarget timing margin for this location along critical path 102 andconnected to the output of the first circuit element 104, (iii) anotherD-type flip-flop 116 connected to the output of delay element 114, and(iv) an exclusive-OR (XOR) logic gate 122 connected to the outputs offlip-flops 118, 116. Depending on the application, delay value T_(G)will typically be in the range from several hundred picoseconds toseveral nanoseconds. Timing-monitor circuit 110 operates by delaying acopy of the signal 112 appearing at the output of circuit element 104 bydelay value T_(G), latching the delayed signal at flip-flop 116, andcomparing the output from flip-flop 116 via XOR logic gate 122 to theoutput signal 120 appearing at the output of flip-flop 118. Outputsignal 126 from XOR logic gate 122 is then latched into a timing failureindicator register 124, which produces output signal 128. Output signal128 is then passed to a controller, which may adjust either the clockrate or a supply voltage for the integrated circuit, based on outputsignal 128.

As a first example, assuming that signal 112 comprises a data transitionfrom a logic value 0 to a logic value 1 and that the setup time forflip-flop 116 is just satisfied (i.e., has zero timing margin), then thelogic value 1 will be successfully latched into flip-flop 116 with clockCL. Since the 0-to-1 transition will arrive at input D of flip-flop 118at some earlier time with respect to clock CL, flip-flop 118 will alsosuccessfully latch in the logic value 1. The XOR timing failureindicator register 126 will have a logic value 0, because bothflip-flops have the same output values. This logic value 0 indicatesthat flip-flop 118 in the critical path has satisfied its setup time byat least the target timing margin set by delay value T_(G).

As a second example, where a 0-to-1 data transition in signal 112 occursa short time later than in the above example (e.g., due to the aging ofcircuit elements in critical path 102 upstream of signal 112), flip-flop118 may successfully latch in the logic value 1 with clock CL, whileflip-flop 116 latches in the logic value 0 due to delay value T_(G). XORtiming failure indicator register 126 will now have a logic value 1,indicating that a setup violation has occurred in flip-flop 116 and thatflip-flop 118 has a setup margin of less than delay value T_(G). Assuch, a timing failure will be more likely to occur, e.g., as thecircuit continues to age.

Under certain circumstances, however, timing-monitor circuit 110 maygive an erroneous indication that the timing for critical path 102 issatisfied, even though a setup violation may occur. In particular, ifthe 0-to-1 transition occurs later than in the second example above,flip-flops 116, 118 both may experience setup violations and incorrectlylatch in a logic value 0. In this instance, the XOR timing failureindicator register 126 will incorrectly show a logic value 0, because itis unable to detect the case of setup violations in both flip-flops.

In addition to this susceptibility to give false negatives,timing-monitor circuit 110 has several other disadvantages. First,because only one delay element 114 is used, timing issues can beidentified only with the resolution of delay value T_(G) of thatelement.

Second, in order for timing-monitor circuit 110 to test the timing ofcritical path 102, some minimal amount of data activity must occur incritical path 102, in order to cause enough data transitions in signal112 to produce timing failure (or success) indications. If there islittle data activity in critical path 102, then delays in critical path102 (e.g., due to aging) may arise but be undetected by timing-monitorcircuit 110.

Third, timing-monitor circuits are typically added to an integratedcircuit only after the physical design and static timing analysis(including the identification of critical paths) for the integratedcircuit have been completed. When flip-flop 118 in timing-monitorcircuit 110 is inserted into critical path 102, however, both the timingand loading of critical path 102 are impacted. As such, circuit loadingand timing analysis likely need to be repeated after timing-monitorcircuit 110 is placed, and the physical design may have to be changed toaccommodate the timing-monitor circuit 110. Such changes may have asignificant impact on the design schedule for the integrated circuit.

SUMMARY OF THE INVENTION

Problems in the prior art are addressed in accordance with theprinciples of the present invention by an improved timing-monitorcircuit placed in a region near a critical path to be monitored in anintegrated circuit.

Thus, in one embodiment, the present invention is an integrated circuithaving a monitor circuit for monitoring timing in a critical path in theintegrated circuit. The critical path has a target timing margin. Themonitor circuit includes a first shift register having an input and anoutput and having a delay circuit that applies a delay value to areceived signal. The monitor circuit further includes a second shiftregister having an input and an output, wherein the inputs of the firstand second shift registers are connected together to form a signal inputnode capable of receiving an input signal. The monitor circuit alsoincludes a logic circuit having an output and at least two inputs, eachinput connected to a corresponding one of the outputs of the first andsecond shift registers. The output of the logic circuit indicateswhether the target timing margin is satisfied or not satisfied.

In another embodiment, the present invention is an apparatus formonitoring timing in a critical path in an integrated circuit. Thecritical path has a target timing margin. The apparatus comprises: (a)means for splitting an input signal into a first path including a firstshift register and a second path including a second shift register; (b)means for delaying the input signal in the first path by a first delay;(c) means for comparing the input signal in the second path with thedelayed input signal in the first path; and (d) means for producing,based on the comparison, an output indicating whether the target timingmargin is satisfied or not satisfied.

In still another embodiment, the present invention is a method formonitoring timing in a critical path in an integrated circuit. Thecritical path has a target timing margin. An input signal is split intoa first path including a first shift register and a second pathincluding a second shift register. The input signal in the first path isdelayed by a first delay. The input signal in the second path iscompared with the delayed input signal in the first path. Finally, basedon the comparison, an output is produced, indicating whether the targettiming margin is satisfied or not satisfied.

BRIEF DESCRIPTION OF THE DRAWINGS

Other aspects, features, and advantages of the present invention willbecome more fully apparent from the following detailed description, theappended claims, and the accompanying drawings in which like referencenumerals identify similar or identical elements.

FIG. 1 is a schematic block diagram of a prior-art timing-monitorcircuit.

FIG. 2 is a schematic block diagram of a timing-monitor circuit inaccordance with an embodiment of the invention.

FIG. 3 is a schematic block diagram of a timing-monitor circuitincluding a fine-delay detector in accordance with another embodiment ofthe invention.

FIG. 4 is a detailed block diagram of an embodiment of the fine-delaydetector of FIG. 3.

FIGS. 5-7 are timing diagrams illustrating the operation of thetiming-monitor circuit shown in FIG. 3 with the fine-delay detectorshown in FIG. 4.

DETAILED DESCRIPTION

FIG. 2 depicts an integrated circuit 200 including a timing-monitorcircuit 210 in accordance with one embodiment of the invention.Timing-monitor circuit 210 is preferably placed sufficiently near acritical path 202 having circuit elements 204 and 206 so thattiming-monitor circuit 210 experiences the same process, voltage,temperature, and aging effects as the circuit elements in critical path202. In contrast with timing-monitor circuit 110 discussed above withrespect to FIG. 1, which is located within and connected to criticalpath 102, timing monitor circuit 210 is preferably substantiallyindependent of critical path 202 (i.e., having no components in commonwith critical path 202 and relying on no signal traversing critical path202 except clock CL, which may be shared by timing monitor circuit 210and critical path 202).

Timing-monitor circuit 210 includes (i) a first shift register 230formed by D-type flip-flops 232 and 234 and (ii) a second shift register240 formed by D-type flip-flops 242 and 248. Second shift register 240further includes a delay element 244, which provides a delay valueT_(DELAY). The design value of delay value T_(DELAY) is preferably equalto a predetermined period of time that is a function of a target timingmargin for circuit element 206 in critical path 202. For example, thepredetermined period of time may be about one clock period minus thetarget timing margin. Over time, however, the actual delay valueT_(DELAY) may increase, e.g., due to aging effects.

The outputs of shift registers 230 and 240 are connected to the inputsof XOR logic gate 260, and the output of XOR logic gate 260 is connectedto flip-flop 270, which produces a timing failure indicator signalpassed to timing failure indicator 280. Timing-monitor circuit 210 mayfurther include an enable/disable circuit 290, which passes clock signalCL to the other elements in the circuit only if it receives an enablesignal EN. Enable/disable circuit 290 may be implemented as an AND logicgate as shown in FIG. 2, or, alternatively, as a NAND, NOR, OR, or XORlogic gate (with an appropriate polarity of enable signal EN).

Timing-monitor circuit 210 may further include a pulse generator 220 toproduce signal 224, which is used as a “test data” signal to be input toshift registers 230 and 240. In the embodiment shown in FIG. 2, pulsegenerator 220 is a flip-flop 222 configured as a divide-by-2 circuit(i.e., having its NOT-Q output connected to its D input) that is drivenby clock CL, although other suitable pulse generators may be employed.In the embodiment shown in FIG. 2, for each two clock cycles, flip-flop222 produces one output pulse at its NOT-Q output. The signal at theNOT-Q output of flip-flop 222 is then split and inputted to the D inputsof flip-flops 232 and 242. Alternatively, a Q output, rather than theNOT-Q output) of flip-flop 222 may be used to drive the D inputs offlip-flops 232 and 242.

For a given rising edge of clock CL, a data transition (e.g., 0-to-1) insignal 224 is latched into flip-flops 232 and 242. On the next risingedge of clock CL, the data transition will be latched into flip-flop 234in the undelayed shift register 230. If the actual delay value T_(DELAY)in delay element 244 does not exceed the predetermined period of timeplus the target timing margin (e.g., the actual delay value T_(DELAY)does not exceed about one clock period), then the setup time offlip-flop 248 will not be violated), and flip-flop 248 in the delayedshift register 240 will correctly latch in the same data transition. XORlogic gate 260 will accordingly produce a logic value 0 at its output,indicating that the timing in the test data path including flip-flop242, delay element 244, and flip-flop 248 meets design limits. Becausethe test data path including flip-flop 242, delay element 244, andflip-flop 248 is placed sufficiently near critical path 202 so that theelements in the two paths experience the same process, voltage,temperature, and aging effects, the logic value 0 at the output of XORlogic gate 260 is assumed to indicate that the timing in critical path202 also meets design limits.

On the other hand, if process, voltage, temperature, and/or agingeffects have caused the actual delay value T_(DELAY) to exceed thepredetermined period of time plus the target timing margin (e.g., theactual delay value T_(DELAY) exceeds about one clock period), then thetarget timing margin will no longer be satisfied. Flip-flop 234 in theundelayed shift register 230 will correctly latch in the data transitionvalue (e.g., logic value 1), but flip-flop 248 in the delayed shiftregister 240 will latch in an incorrect data transition value (e.g., 0).In this case, XOR logic gate 260 will produce a logic value 1 at itsoutput, suggesting that the timing in critical path 202 has not beensatisfied. Flip-flop 270, in turn, will produce a timing failureindicator signal that is passed to timing failure indicator 280.

In practice, delay element 244 is preferably selected during the designprocess from among a predetermined set of standard delay circuits(including, e.g., circuit macros). The standard delay circuits mayprovide propagation delays corresponding to various fractions of a clockperiod, based on the specific target timing margins to be monitored,which may be set at the onset of a project. The standard delay circuitspreferably contain standard cells with a mixture of high-, standard-,and low-threshold voltage values that closely parallel the criticalpaths of the integrated circuit to be monitored. Further, delay element244 may be an adjustable delay element, such that timing monitor circuit210 may accommodate a range of clock frequencies during operation ofintegrated circuit 200.

Timing-monitor circuit 210 has numerous advantages over prior-arttiming-monitor circuit 110 of FIG. 1. First, timing-monitor circuit 210may be inserted in the physical design well before final statisticaltiming analysis is performed. Multiple placements in various keylocations on an integrated circuit may be made, without the addition ofany extra loading to critical paths and with the additional loading onthe clock signal of only one extra logic gate per instance of timingmonitor circuit 210. As a result, timing-monitor circuit 210 has minimalimpact on the static timing analysis or the final physical design of theintegrated circuit.

Second, timing-monitor circuit 210 is not susceptible to the problem offalse negatives discussed above with respect to timing-monitor circuit110, because flip-flop 234 will always latch the correct data.

Third, timing-monitor circuit 210 does not rely on the integratedcircuit to provide data transitions to test the monitored critical path.Rather, pulse generator 220 provides plentiful data transitions throughtiming-monitor circuit 210, such that the monitored critical path isfrequently tested, albeit indirectly.

Fourth, because enable/disable circuit 290 receives the clock signal CLand distributes it to the remaining circuit elements in timing-monitorcircuit 210, adding timing-monitor circuit 210 to an integrated circuitadds only a single gate to the integrated circuit clock loading.

FIG. 3 depicts timing-monitor circuit 310 in accordance with anotherembodiment of the invention. Timing-monitor circuit 310 in FIG. 3 issimilar to timing-monitor circuit 210 of FIG. 2 with similar elementsidentified using labels having the same last two digits, except that, intiming-monitor circuit 310, a gross-delay element 344 and a fine-delaydetector circuit 346 connected to fine-delay output register 350 havebeen substituted in place of delay element 244 in FIG. 2.

The delay value of gross-delay element 344 is selected to be about thesame as a substantial portion of the delay value provided by delayelement 244, while the delay value associated with fine-delay detector346 is selected to be the remaining portion of the delay value providedby delay element 244. As such, the total path delay value betweenflip-flops 242 and 248 in timing-monitor circuit 210 in FIG. 2 andbetween flip-flops 342 and 348 in timing-monitor circuit 310 in FIG. 3is approximately the same. Fine-delay detector 346 is preferably adapted(i) to compare, with a predetermined resolution, the actual delay ofgross-delay element 344 with the predetermined period of time (which isa function of the target timing margin, as discussed above), and (ii) toproduce, based on the result, a detector output signal that correspondsto the actual timing margin in timing-monitor circuit 310. The detectoroutput signal is then passed to fine-delay detector register 350. In apreferred embodiment, fine-delay detector 346 is adapted to detect notonly increases in the amount of actual delay associated with gross-delayelement 344 but also decreases in the amount of such delay. In so doing,fine-delay detector 346 is also capable of evaluating increases anddecreases in the actual timing margin in timing-monitor circuit 310.

FIG. 4 depicts an exemplary embodiment of fine-delay detector circuit346 of FIG. 3. As shown in FIG. 4, fine-delay detector circuit 346includes nine delay-line elements (DLEs) 406 ₀-406 ₈ connected inseries, nine flip-flops 404 ₀-404 ₈, and eight XOR logic gates 402 ₀-402₇. The inputs to flip-flop 404 ₀ and to DLE 406 ₀ are connected tosignal TR_(IN), taken from the output of gross-delay element 344 in FIG.3. The outputs from DLEs 406 ₀-406 ₇ are connected respectively to the Dinputs of flip-flops 404 ₁-404 ₈ and to the inputs of DLEs 406 ₁-406 ₈.DLE 406 ₈ is provided so that the output loading of DLE 406 ₇ is thesame as that of DLEs 406 ₀-406 ₆. As such, the output from DLE 406 ₈ isnot used.

In this configuration, input signal TR_(IN) propagates down the delayline formed by DLEs 406 ₀-406 ₈. DLEs 406 ₀-406 ₈ and flip-flops 404₀-404 ₈ form a “thermometer” register. In a thermometer register havinga set of n output bits, the 0^(th) through i^(th) output bits are allhigh, while the rest of the output bits (i.e., the (i+1)^(th) throughthe (n−1)^(th) output bits) are all low (or vice versa). The point oftransition of the values of the thermometer register output bits (e.g.,from logic value 1 to logic value 0) indicates how far input signalTR_(IN) has propagated down the delay line formed by DLEs 406 ₀-406 ₈ atthe time when the clock signal CL arrives at flip-flops 404 ₀-404 ₈.

The Q outputs from consecutive pairs of flip-flops 404 ₀-404 ₈ areconnected to the respective inputs of XOR logic gates 402 ₀-402 ₇. XORlogic gates 402 ₀-402 ₇, in turn, respectively produce output bitsB₀-B₇, which provide a measure of the actual delay of gross-delayelement 344. DLEs 406 ₀-406 ₈, flip-flops 404 ₀-404 ₈, and XOR logicgates 402 ₀-402 ₇ thus form a “one-hot” register, in which only oneoutput bit is high (i.e., “1”), while the rest are low (i.e., “0”) (orvice versa). The location of the high output bit within output bitsB₀-B₇ indicates how far the input signal TR_(IN) has propagated down thedelay line formed by DLEs 406 ₀-406 ₈ at the time when the clock signalCL arrives at flip-flops 404 ₀-404 ₈.

Output bits B₀-B₇ are then stored in fine-delay detector output register350 for use, e.g., by an IC timing controller (not shown). The IC timingcontroller may then use the timing information provided by output bitsB₀-B₇, e.g., to adjust the rate of the integrated circuit clock or thepower supply voltage based on the timing information. For example, ifthe target timing margin has been met with excess margin, then the clockrate may be increased without fear of creating timing errors in criticalpath 202. On the other hand, if the target timing margin is notsatisfied, the clock rate may be decreased, in order to improve thetiming in critical path 202.

Output signal TR_(OUT) of detector circuit 346 may be connected from anyone of the outputs from DLE 406 ₀-406 ₈ to the D input of flip-flop 348of FIG. 3. The specific DLE output used as the connection for outputsignal TR_(OUT) may be selected during the design of the integratedcircuit, according to the extent to which the designer wishes to detectsuccessful (i.e., earlier) or unsuccessful (i.e., later) timing, asfurther explained below. In the embodiment shown in FIG. 4, for example,output signal TR_(OUT) is taken directly at the output of DLE 406 ₁.

Alternatively, the outputs from DLE 406 ₀-406 ₈ may be connected to a9×1 selection switch (not shown), and the output from the selectionswitch may be taken as output signal TR_(OUT). The selection switch maybe an active-gate multiplexer, transmission gate (Tgate) multiplexer,tristatable buffer multiplexer, or other suitable selection switch ormultiplexer. In this alternative embodiment, the selection switch mayselect any one of the outputs from DLE 406 ₀-406 ₈ to use as outputsignal TR_(OUT), based on a control signal, e.g., from a timingcontroller.

The operation of timing-monitor circuit 310 shown in FIG. 3 andfine-delay detector circuit 346 shown in FIG. 4 may be furtherunderstood with reference to the following three cases, illustratedrespectively by the timing diagrams shown in FIGS. 5-7.

Case 1: Target Timing Margin Met with No Excess Margin

FIG. 5 illustrates the timing for Case 1, in which the target timingmargin is met with no excess margin. In Case 1, the design value for thesum of the delays (i) from the clock CL to output Q of flip-flop 342,(ii) through gross-delay element 344, and (iii) through fine-delaydetector 346 (e.g., the time for signal TR_(IN) to travel to signalTR_(OUT)) is selected to be equal to about one clock period (i.e., thetarget timing margin is assumed to be minimal, such that little or noslack exists).

A data logic value 1 is latched into flip-flops 332 and 342 in FIG. 3 onthe first rising edge of the clock CL, as shown at time t₁ in the timingdiagram in FIG. 5. Accordingly, the Q outputs of flip-flops 332 and 342transition from a logic value 0 to a logic value 1.

Just before the second rising edge of the clock CL at time t₂ in FIG. 5,by design, the 0-to-1 transition will be observed across the entiregross-delay element 344 and the outputs of the first two DLEs 406 ₀ and406 ₁ in fine-delay detector 346. At the second rising edge of clock CL(at time t₂), a logic value 1 will be observed at the outputs of thefirst two DLEs nearest the TR_(IN) input (i.e., DLEs 406 ₀ and 406 ₁).The outputs of the seven remaining DLEs 406 ₂-406 ₈ will all show logicvalue 0. The second rising edge of clock CL will also register a logicvalue 1 into flip-flops 334 and 348 in FIG. 3, such that the timingfailure indicator 380 will eventually register a logic value 0,indicating that timing constraints have been met.

The second rising edge of clock CL will also register a logic value 1into flip-flops 404 ₀-404 ₂ and logic value 0 into flip-flops 404 ₃-404₈ in FIG. 4. Accordingly, the bit values B[0:7] outputted by XOR logicgates 402 ₀-402 ₇ will respectively have logic values {0010 0000}. TheB₂ bit value of logic value 1 indicates that the 0-to-1 transitionoccurs within the third DLE (DLE 406 ₂) at the time of the second risingedge of clock CL. In other words, the input to DLE 406 ₂ (as well as theoutput from DLE 406 ₁) is logic value 1, and the output from DLE 406 ₂has a logic value 0 at the time of the second rising edge of clock CL(time t₂). In this instance, these XOR output bit values (B[0:7]={00100000}) indicate that the target timing margin was met with minimumdetectable excess margin.

Case 2: Target Timing Margin Met with Significant Excess Margin

FIG. 6 illustrates the timing for Case 2, in which the target timingmargin is met with significant excess margin. In Case 2, as in Case 1,the design value for the sum of the delays (i) from the clock CL tooutput Q of flip-flop 342, (ii) through gross-delay element 344, and(iii) through fine-delay detector 346 is selected to be equal to aboutone clock period (i.e., the target timing margin is assumed to beminimal, such that little or no slack exists). In Case 2, however, it isassumed that a combination of clock-distribution slow down and/ordata-path speed up over time has resulted in the 0-to-1 transitionoccurring farther down the delay line than originally designed.

Initially, a logic value 1 is clocked into flip-flops 332 and 342 on thefirst rising edge of clock CL, as shown at time t₁ on the timing diagramin FIG. 6. Accordingly, the Q outputs of flip-flops 332 and 342transition from a logic value 0 to a logic value 1. Just before thesecond rising edge of clock CL at time t₂, the 0-to-1 transition isobserved across the entire gross-delay element 344 and the outputs ofthe first seven DLEs 406 ₀-406 ₆ of the delay line in fine-delaydetector circuit 346. At time t₂ in FIG. 6, at the second rising edge ofclock CL, a logic value 1 will be observed at the outputs of the firstseven DLEs nearest input TR_(IN) (i.e., DLEs 406 ₀-406 ₆). The output ofremaining DLEs 406 ₇ and 406 ₈ will show logic value 0. The secondrising edge of clock CL will also register logic value 1 into flip-flops334 and 348 in FIG. 3, and timing failure indicator 380 will eventuallyregister a logic value 0, indicating that timing constraints were met.

The second rising edge of clock CL will also register a logic value 1into flip-flops 404 ₀-404 ₇ and a logic value 0 into flip-flop 404 ₈ inFIG. 4. Accordingly, the XOR output bit values B[0:7] will respectivelyhave values {0000 0001}. Here, the eighth bit value B₇ of logic value 1indicates that the 0-to-1 transition occurs within the eighth DLE 406 ₇at the time of the second rising edge of clock CL (time t₂). In otherwords, the input to DLE 406 ₇ (and the output from DLE 406 ₆) is a logicvalue 1, while the output from DLE 406 ₇ has a logic value 0 at the timeof the second rising edge of clock CL. These XOR output bit values showthat the target timing margin was met with maximum detectable excessmargin. In this case, the maximum detectable excess margin isapproximately five DLE delays.

Case 3: Timing not Met with Setup Violation

FIG. 7 illustrates Case 3, in which the target timing margin is not met,and a setup violation is detected. In Case 3, as in Cases 1 and 2, theinitial value for the sum of the delays (i) from the clock CL to outputQ of flip-flop 342, (ii) through gross-delay element 344, and (iii)through fine-delay detector 346 is selected to be equal to about oneclock period (i.e., the target timing margin is assumed to be minimal,such that little or no slack exists). In Case 3, however, a combinationof clock-distribution speed-up and/or data-path slow-down over time hasresulted in the 0-to-1 transition occurring so far up the delay linethat the target timing margin is exceeded, and a setup violation occurs.

In Case 3, at time t₁ in FIG. 7, a logic value 1 is clocked intoflip-flops 332 and 342 on the first rising edge of clock CL.Accordingly, the Q outputs of flip-flops 332 and 342 transition from alogic value 0 to a logic value 1. Just before the second rising edge ofthe clock CL at time t₂, the 0-to-1 transition is observed across theentire gross-delay element 344 and at the output of the first DLE 406 ₀of the delay line. At time t₂, at the second rising edge of clock CL, alogic value 1 will be observed at the output of the first DLE nearestinput TR_(IN) (i.e., DLE 406 ₀). The outputs of the eight remaining DLEs406 ₁-406 ₈ will all show logic 0. The second rising edge of clock CLwill also register logic value 1 into flip-flop 334 in the undelayedshift register 330 in FIG. 3. However, the second rising edge of clockCL will register a logic value 0 into flip-flop 348 of the delayed shiftregister 340 in FIG. 3. As a result, timing failure indicator 380 willeventually register a logic value 1, indicating that a timing failurehas occurred and that the target timing margin has not been satisfied.

The second rising edge of clock CL at time t₂ will also register a logicvalue 1 into flip-flops 404 ₀-404 ₁ and a logic value 0 into flip-flops404 ₂-404 ₈ in FIG. 4. Accordingly, the XOR output bit values B[0:7]will respectively have values {0100 0000}. Here, output bit value B₁ oflogic value 1 indicates that the 0-to-1 transition occurs within thesecond DLE 406 ₁ at the time of the second rising edge of clock CL (timet₂). In other words, the input to DLE 406 ₁ (and the output from DLE 406₀) has a logic value 1 and the output from DLE 406 ₁ has a logic value 0at the time of the second rising edge of clock CL. These output bitvalues B[0:7] indicate that the target timing margin was not met, andthat a setup violation of an approximately one-DLE delay magnitude hasoccurred.

The embodiment of FIGS. 3 and 4, like the embodiment of FIG. 2, hasnumerous advantages over the prior art. As an initial matter, theembodiment of FIGS. 3 and 4 shares all of the advantages of FIG. 2described above. In addition, the embodiment of FIGS. 3 and 4 providesnot only a yes/no timing failure indicator but also a numeric measure(both positive and negative) of the actual timing margin. Further, therange of timing margin measurement may be adjusted by adjusting thegross delay 344 and/or the number of delay line elements and theircorresponding flip-flops and XOR logic gates. Moreover, a range of clockfrequencies may be accommodated by making the gross path delay element344 adjustable during the operation of timing monitor circuit 310.Finally, the relative range of the positive-to-negative timing-marginmeasurement capability can be managed by varying the position of outputTR_(OUT) with respect to the DLEs in fine-delay detector circuit 346.

Although the present invention has been described in the context ofcircuits having XOR logic gates 260, 360, the present invention can alsobe implemented using other types of logic gates, such as not-XOR (NXOR)gates.

In addition, although the fine-delay detector circuit 346 shown in FIG.4 includes nine DLEs 406 ₀-406 ₈, nine flip-flops 404 ₀-404 ₈, and eightXOR logic gates 402 ₀-402 ₇, in practice the quantities of DLE's,flip-flops, and XOR logic gates may be made larger or smaller than thoseshown in FIG. 4, according to the amount of fine-delay resolution thatis desired for a particular application.

Further, although data signals 224, 324 are generated by pulsegenerators 220, 320 in the embodiments depicted in FIGS. 2 and 3 above,it should be recognized that the use of pulse generator 220 is optional.Thus, in one embodiment of the present invention, the data signaltraversing critical data path 202 (e.g., the output signal from circuitelement 204) may be split and used as data signal 224, which is input toflip-flops 232, 242 and/or 332, 342.

The present invention may be implemented as digital (or a hybrid of bothanalog and digital) circuit-based processes, including possibleimplementation as a single integrated circuit (such as an ASIC or anFPGA), a multi-chip module, a single card, or a multi-card circuit pack.As would be apparent to one skilled in the art, various functions ofcircuit elements may also be implemented as processing blocks in asoftware program. Such software may be employed in, for example, adigital signal processor, micro-controller, or general-purpose computer.

Also for purposes of this description, the terms “couple,” “coupling,”“coupled,” “connect,” “connecting,” or “connected” refer to any mannerknown in the art or later developed in which energy is allowed to betransferred between two or more elements, and the interposition of oneor more additional elements is contemplated, although not required.Conversely, the terms “directly coupled,” “directly connected,” etc.,imply the absence of such additional elements.

Signals and corresponding nodes or ports may be referred to by the samename and are interchangeable for purposes here.

Unless explicitly stated otherwise, each numerical value and rangeshould be interpreted as being approximate as if the word “about” or“approximately” preceded the value of the value or range.

It will be further understood that various changes in the details,materials, and arrangements of the parts which have been described andillustrated in order to explain the nature of this invention may be madeby those skilled in the art without departing from the scope of theinvention. Rather, the scope of the invention is expressed in thefollowing claims.

The present invention has been described in the context of shifterregister 240 of FIG. 2 having delay element 244 and shift register 340of FIG. 3 having delay elements 344 and 346. In general, shift registersof the present invention can be implemented with any suitable circuitrythat adds an appropriate amount of delay to the signals propagatingthrough the shift register.

The use of figure numbers and/or figure reference labels in the claimsis intended to identify one or more possible embodiments of the claimedsubject matter in order to facilitate the interpretation of the claims.Such use is not to be construed as necessarily limiting the scope ofthose claims to the embodiments shown in the corresponding figures.

It should be understood that the steps of the exemplary methods setforth herein are not necessarily required to be performed in the orderdescribed, and the order of the steps of such methods should beunderstood to be merely exemplary. Likewise, additional steps may beincluded in such methods, and certain steps may be omitted or combined,in methods consistent with various embodiments of the present invention.

Although the elements in the following method claims, if any, arerecited in a particular sequence with corresponding labeling, unless theclaim recitations otherwise imply a particular sequence for implementingsome or all of those elements, those elements are not necessarilyintended to be limited to being implemented in that particular sequence.

Reference herein to “one embodiment” or “an embodiment” means that aparticular feature, structure, or characteristic described in connectionwith the embodiment can be included in at least one embodiment of theinvention. The appearances of the phrase “in one embodiment” in variousplaces in the specification are not necessarily all referring to thesame embodiment, nor are separate or alternative embodiments necessarilymutually exclusive of other embodiments. The same applies to the term“implementation.”

We claim:
 1. An integrated circuit having a monitor circuit (e.g., 210,310) for monitoring timing in a critical path (e.g., 202) in theintegrated circuit, the critical path having a target timing margin, themonitor circuit comprising: a first flip-flop (e.g., 232, 332) having aninput and an output; a second flip-flop (e.g., 242, 342) having an inputand an output, wherein the inputs of the first and second flip-flops areconnected together to form a signal input node capable of receiving aninput signal (e.g., 224, 324); a delay circuit (e.g., 244, 344/346)adapted to apply a delay value to a signal outputted from the firstflip-flop; and a logic circuit (e.g., 260, 360) having an output and atleast a first input and a second input, the first input being connectedto the delay circuit, and the second input being connected to the outputof the second flip-flop, wherein: the output of the logic circuitindicates whether the target timing margin is satisfied or notsatisfied, and the delay circuit comprises: a gross-delay elementadapted to provide a gross delay value; and a fine-delay detectorcircuit adapted to generate, based on the gross delay value, an outputsignal indicating the extent to which the target timing margin issatisfied.
 2. The integrated circuit of claim 1, wherein: if the delayvalue is less than a predetermined period of time plus the target timingmargin, then the logic circuit produces an output (e.g., 280, 380)indicating that the target timing margin has been satisfied, and if thedelay value is greater than the predetermined period of time plus thetarget timing margin, then the logic circuit produces an output (e.g.,280, 380) indicating that the target timing margin has not beensatisfied.
 3. The integrated circuit of claim 2, wherein, if an inputpulse is inserted at the signal input node, then: (i) the firstflip-flop produces a first pulse at its output; (ii) the secondflip-flop produces a second pulse at its output; and (iii) the logiccircuit produces an output indicating that the target timing margin hasnot been satisfied only if the first pulse is separated in time from thesecond pulse by an amount of time more than the predetermined period oftime plus the target timing margin.
 4. The integrated circuit of claim1, wherein the logic circuit is one of an XOR logic gate and an NXORlogic gate.
 5. The integrated circuit of claim 1, further comprising apulse generator (e.g., 220, 320) adapted to provide the input signal atan output connected to the signal input node.
 6. The integrated circuitof claim 1, wherein the monitor circuit is (i) substantially independentof the critical path and (ii) located sufficiently near the criticalpath to be monitored in the integrated circuit such that an indicationthat the target timing margin has not been satisfied indicates that atiming problem exists in the critical path.
 7. The integrated circuit ofclaim 1, wherein the delay circuit has an adjustable delay value.
 8. Theintegrated circuit of claim 1, wherein the gross delay element has anadjustable delay value.
 9. The integrated circuit of claim 1, whereinthe fine-delay detector circuit comprises: a delay line having an inputand a plurality of delay-line elements (e.g., 406 ₀-406 ₈) connected inseries, each delay-line element having an input and an output.
 10. Theintegrated circuit of claim 9, wherein the fine-delay detector circuitfurther comprises: a plurality of flip-flops (e.g., 404 ₀-404 ₈), one ormore flip-flops having an input and an output, the input of each beingconnected to the input of a corresponding delay-line element, wherein:the outputs of the plurality of flip-flops indicate the extent to whichthe target timing margin is satisfied.
 11. The integrated circuit ofclaim 10, wherein the fine-delay detector circuit further comprises: aplurality of logic gates (e.g., 402 ₀-402 ₇), each logic gate having atleast two inputs respectively connected to the outputs of acorresponding pair of adjacent flip-flops in the plurality of flip-flopsin series along the delay line, wherein: the output of at least onelogic gate indicates the extent to which the target timing margin issatisfied.
 12. A method for monitoring timing in a critical path in anintegrated circuit, the critical path having a target timing margin, themethod comprising: (a) splitting an input signal into a first pathincluding a first flip-flop (e.g., 232, 332) and a second path includinga second flip-flop (e.g., 242, 342); (b) delaying the input signal inthe first path by a first delay; (c) comparing the input signal in thesecond path with the delayed input signal in the first path; (d)producing, based on the comparison, an output (e.g., 280, 380)indicating whether the target timing margin is satisfied or notsatisfied; and (e) detecting the extent to which the target timingmargin is satisfied or not satisfied, wherein detecting the extent towhich the target timing margin is satisfied or not satisfied comprises:after delaying the input signal in the first path by the first delay,consecutively delaying the input signal by a plurality of delay elementsin a delay line; and for each delay element in the delay line, producingan output signal corresponding to the signal state at the input of thedelay element.
 13. The method of claim 12, wherein comparing the inputsignal in the second path with the delayed input signal in the firstpath comprises performing a logic operation on the outputs from thefirst path and the second path.
 14. The method of claim 12, wherein: ifthe input signal in the first path is delayed relative to the inputsignal in the second path by an amount of time less than a predeterminedperiod of time plus the target timing margin, then the produced outputindicates that the target timing margin has been satisfied, and if theinput signal in the first path is delayed relative to the input signalin the second path by an amount of time greater than the predeterminedperiod of time plus the target timing margin, then the produced outputindicates that the target timing margin has not been satisfied.
 15. Themethod of claim 12, further comprising adjusting the first delay. 16.The method of claim 15, wherein the step of adjusting the first delay isperformed based on one of a plurality of clock frequencies of theintegrated circuit.
 17. The method of claim 12, wherein detecting theextent to which the target timing margin is satisfied or not satisfiedfurther comprises: performing, for each consecutive pair of outputsignals corresponding to a consecutive pair of delay elements in thedelay line, a logical operation to determine, based on the consecutivepair of output signals, whether the input signal has reached acorresponding delay element in the delay line at a time determined by aclock signal; and outputting a result of the logical operationcorresponding to at least one consecutive pair of output signals.
 18. Anapparatus for monitoring timing in a critical path in an integratedcircuit, the critical path having a target timing margin, the apparatuscomprising: (a) means for splitting an input signal into a first pathincluding a first flip-flop and a second path including a secondflip-flop; (b) means for delaying the input signal in the first path bya first delay; (c) means for comparing the input signal in the secondpath with the delayed input signal in the first path; (d) means forproducing, based on the comparison, an output indicating whether thetarget timing margin is satisfied or not satisfied; and (e) means fordetecting the extent to which the target timing margin is satisfied ornot satisfied, the means for detecting comprising: after delaying theinput signal in the first path by the first delay, consecutivelydelaying the input signal by a plurality of delay elements in a delayline; and for each delay element in the delay line, producing an outputsignal corresponding to the signal state at the input of the delayelement.